package filetools;

import java.io.File;
import java.util.Scanner;

/**
 * @Author Zhang Chao
 * @Date 2021/5/25 10:00
 * @Version 1.0
 */
public class TestDriver {

     /*
        file工具类的练习题：
            给定一个文件目录名和关键字，查找该目录下文件名含有该关键字的文件对象，并将查找到的文件名打印出来；
     */

    public static void main(String[] args) {
        //1.输入目录名和关键字
        Scanner scanner = new Scanner(System.in);
        System.out.println("请入查找的文件目录（绝对位置）：");
        // 文件目录
        String strDirectoryName = scanner.nextLine();
        System.out.println("请入出查找的关键字：");
        // 查找的关键字
        String strKeyWords = scanner.nextLine();

        // 2、判断目录是否存在，如果存在,在获取该目录下的所有的文件对象
        // 创建查找的目录文件对象
        File fileDirectory = new File(strDirectoryName);
        // 判断文件是否存在
        if(fileDirectory.exists()){
            //判断file对象是目录还是文档对象
            if(fileDirectory.isDirectory()){
                //目录
                //获取该目录下的所有的文件对象
                File[] subFiles = fileDirectory.listFiles();

                // 3、依次遍历获取的文件对象，并查找含有关键字的文件对象，进行输出显示
                // 依次遍历数组中每个文件对象，判断是否含有关键字
                for (File subF: subFiles){
                    //判断是否含有关键字
                    if (subF.getName().toLowerCase().contains(strKeyWords.toLowerCase())){
                        //输出该文件信息
                        System.out.println(subF.getAbsolutePath()+" ------ "+(subF.isDirectory()?"目录":"文件"));
                    }
                }
            }
        }else{
            System.out.println("没有该文件");
        }
    }

}
